home *** CD-ROM | disk | FTP | other *** search
/ Floppyshop 2 / Floppyshop - 2.zip / Floppyshop - 2.iso / art&graf.ix / art-4542 / rsflip11 / rsflip.doc next >
Text File  |  1989-05-08  |  15KB  |  357 lines

  1. -------------------------------------------------------------------------------
  2.                       RSFLIP V1.1
  3.  
  4.                Copyright (c) 1989, By Bob Silliker
  5.                   All Rights Reserved
  6.  
  7.                    THIS SOFTWARE IS FREEWARE
  8. -------------------------------------------------------------------------------
  9.  
  10. INTRODUCTION
  11.  
  12. Rsflip is a program that provides simple flip book animation.  The intention
  13. of the program is to give users who do not have mush drawing skill access to
  14. animation.  The flip book area is a 40 X 40 grid of blocks.  Each block is
  15. called a 'pixel' and the entire grid of blocks (pixels) is called a 'frame'.
  16. The user draws simple scenes on a number of these frames and then flips 
  17. between them under program control.
  18.  
  19. There are menu options for clearing, filling, inverting, rotating, shifting,
  20. moving and copying all the blocks in a frame or only a user defined portion
  21. of the frame.  It is also possible to make these menu entries affect a range
  22. of frames.  Frames can be added, duplicated, copied/cut to buffer, pasted
  23. from buffers, and deleted.
  24.  
  25. There are two drawing primitives; Draw and Box. These too can be made to
  26. affect a range of frames.
  27.  
  28.  
  29. MEMORY REQUIREMENTS
  30.  
  31. Each frame that is defined takes up 3,202 bytes of memory in either resolution.
  32. This means that on a 520ST with stock memory the user has access to about 40
  33. frames, on a 1040ST, MEGA2 and MEGA4 about 200, 520 and 1180 frames
  34. respectively.
  35.  
  36. When the flip book is saved in a file, the program compresses the information
  37. stored in memory by a factor of 16 reducing the amount of file space per
  38. frame to 202 bytes.  This makes it possible to store the contents of about
  39. 1800 frames on a single sided disk.
  40.  
  41.  
  42. AREA BOX OR PIXEL RANGES
  43.  
  44. Pixel ranges are used to affect only a certain area of a frame with an
  45. operation.  I have termed this the 'area box'.  This area box can be enabled
  46. or disable at almost any time using the left mouse button.  When you press
  47. the left mouse button for the first time the area box is set to include all
  48. of the pixels.  To create a new area box point the mouse at the upper left
  49. corner of the area you want to mark and then press and hold the left mouse
  50. button.  A rubber box will appear and will be, by default, the size of one
  51. pixel.  Move the mouse until the rubber box falls within the pixel area you
  52. are interested in and release the mouse button.  You can now use the menu
  53. entries enabled to execute an operation on the area.
  54.  
  55. When the area box is enabled (showing) you will not be able to draw or creat
  56. a box.  These are temporarily disabled in favour of the area box.  To get
  57. back to draw or box press the left mouse button and the area box will be
  58. disabled (disappear).
  59.  
  60. When you are using the menu entries Copy, Xray Copy, Move or Xray move (these
  61. are under the Prim menu) you can use the existing area box as the source
  62. area or you can disable the area box and create a new source box using the
  63. mouse pointer and left mouse button.  If you have the area box enabled you
  64. should not try to creat a new area by pointing inside the box and pressing
  65. the left mouse button.  All this will make the program do is think you want
  66. to copy/move the existing area box (something I have done a lot by mistake).
  67.  
  68.  
  69. FRAME RANGES
  70.  
  71. The program has a menu entry under the Range menu called Enabled.  When this
  72. menu entry is checked (with a check mark) the program will draw a new dialog
  73. over the small dialog on the left that displays the current frame number
  74. (the Frame Number Dialog).  The new dialog contains two values (labelled START
  75. and END) and a mess of arrows.  These are the range start and range end frame
  76. values (inclusive) that will be affected by the next frame modifying operation.
  77. Range is only enabled when the range dialog is shown on the screen.  To
  78. disable range just uncheck the Enable menu entry in the Range menu.
  79.  
  80.  
  81. FRAME DELAY
  82.  
  83. Each frame can, optionally, have a delay associated with it.  This delay is
  84. the period of time that the frame will be displayed before displaying the
  85. next frame.  The delay unit is 1/Frames/Sec set by the user in the Play menu.
  86. If the delay value for a frame is 0 then the frame will not be displayed.
  87. E.G
  88. If your frame display rate is 10 frames per second and a frame has a delay
  89. value of 5 then the delay period will be 5 * 1/10 or .5 seconds.
  90.  
  91.  
  92. ============
  93. MENU ENTRIES
  94. ============
  95.  
  96.   ____________________________________________________________________________
  97.    File      Play         Frame       Ops      Prim        Range        Misc
  98.   ----------------------------------------------------------------------------
  99.   |New    | |Play      | |Add      | |Clear | |Draw     | |Enable    | |Undo |
  100.   |Open   | |----------| |Duplicate| |Fill  | |Box      | |----------| |-----|
  101.   |Read   | |Repeat    | |---------| |Invert| |---------| |Mark Start| |Color|
  102.   |-------| |Reverse   | |Copy     | |------| |Copy     | |Mark End  |  -----
  103.   |Save   | |----------| |Cut      | |Rotate| |Xray Copy|  ----------
  104.   |Save As| |Frames/Sec| |Paste    | |H-Flip| |Move     |
  105.   |Close  | | 1  2  3  | |---------| |V-Flip| |Xray Move|
  106.   |-------| | 4  5  6  | |Delete   | |------|  ---------
  107.   |Quit   | | 7  8  9  | |---------| |Shift |
  108.    -------  |10 15  20 | |Delay    |  ------
  109.              ----------   ---------
  110.  
  111. File Menu
  112. ---------
  113. The file menu contains menu entries that control the creating, opening, saving
  114. and closing of flip books, and program termination.
  115.  
  116. New        - Start a new flip book.  This is used to create a new flip
  117.           book.  The program will start the flip book with one
  118.           blank frame.  The user must Add or Duplicate to get more
  119.           frames.
  120.  
  121. Open        - Open an existing flip book.  Only one flip book can be
  122.           open at any one time.
  123.  
  124. Read        - Read another flip book file onto the end of the flip book
  125.           already in memory.  Only available after a New or Open.
  126.           This does not change the flip book file name.  So when
  127.           saving, the orignal flip book file name will be used (or
  128.           the one used in Save As).
  129.  
  130. Save        - Store the flip book into the existing flip book file.  This
  131.           is available only if you have opened a flip book or if you
  132.           have created a new flip book and have saved it using the
  133.           Save As menu option.
  134.  
  135. Save As           - Save the flip book into a new flip book file.  This is used
  136.           when you want to create a new flip book or rename an
  137.           existing one.
  138.  
  139. Close        - Close the flip book.  If you have made changes to the flip
  140.           book and not save them you will be prompted to SAVE then
  141.           CLOSE, CLOSE or CANCEL.
  142.  
  143. Quit        - Terminate the rsflip program and return to the shell or
  144.           desktop that started the execution of rsflip.  If you have
  145.           a flip book open and you have made changes and not saved
  146.           them you will be prompted tp SAVE then QUIT, QUIT or CANCEL.
  147.  
  148.  
  149. Play Menu
  150. ---------
  151. The Play menu contains menu entries that control flipping through the book.
  152. The user has control over the direction and speed of flipping and whether
  153. flipping is done once or endlessly.
  154.  
  155. Play        - Start flipping through the frames.  If range is enabled
  156.           the starting frame will be the range start otherwise
  157.           the program will start with frame 1.  If range is enabled
  158.           then the ending frame will be range end otherwise the
  159.           program will flip through all the frames.  To STOP flipping
  160.           press and hold down the RIGHT MOUSE BUTTON until the mouse
  161.           pointer appears.
  162.  
  163. Repeat        - Flip through the frames endlessly starting back a 1 or
  164.           range start when the program gets to the end of the
  165.           frames or range end.
  166.  
  167. Reverse        - Flip through the frames backwards.
  168.  
  169. 1, 2, 3, 4,
  170. 5, 7, 8, 9,
  171. 10, 15, 20     - Set the frame speed in frames per second.  The disabled
  172.           number is the current frame speed.
  173.  
  174.  
  175. Frame Menu
  176. ----------
  177. The frame menu provides for adding and duplicating frames, access to the frame
  178. buffer for moving pixels from/to other frames.
  179.  
  180. Add        - Add a frame after the frame that you are currently viewing.
  181.           The new frame will be clear and will become the current
  182.           frame.  If you run out of memory you will get an error
  183.           dialog and nothing will have changed.
  184.  
  185. Duplicate    - Add a frame after the frame that you are currently viewing.
  186.           The new frame will have the same contents as the frame you
  187.           were viewing and will become the current frame.  If you run
  188.           out of memory you will get an error dialog and nothing will
  189.           have changed.
  190.  
  191. Copy        - Copy the frame into the buffer frame.  If you have limited
  192.           the area of the frame with the area box then only the
  193.           pixels inside the area box will be copyied into the frame
  194.           buffer.
  195.  
  196. Cut        - Cut the frame into the buffer frame.  That is copy the
  197.           current from into the buffer then delete the current
  198.           frame.  All frames after the current frame will be moved
  199.           down one frame.  If you have limited the area of the frame
  200.           with the area box then only the pixels in the area box
  201.           will be copied into the buffer.  The frame will still be
  202.           deleted.  You cannot cut the last frame!
  203.  
  204. Paste        - Copy from the buffer into the current frame.  If the user
  205.           has limited the area using the area box then only the
  206.           pixels in the box will be copied into the current frame.
  207.           This is menu entry is also affected by range. If the range
  208.           is enabled then the pixels will be copied into all of the
  209.           frames from range start to range end inclusive.
  210.  
  211. Delete        - Delete the current frame.  This menu entry is affected
  212.           by range.  If range is enabled then all the frames from
  213.           the range start to range end will be  deleted inclusive.
  214.           You cannot delete the last frame!
  215.  
  216. Delay        - Display the frame delay dialog.  When this menu entry is
  217.           checked a dialog will be drawn that will display the
  218.           delay time for the current frame or, if frame range is
  219.           enabled, the range start frame.  The user can change the
  220.           delay period for a single frame or a range of frames.
  221.           While the delay dialog is displayed the user can use
  222.           any of the menu entries, change the current frame or
  223.           the range of frames.  Undo is not available for this
  224.           menu option.
  225.  
  226. Ops Menu
  227. --------
  228. The Ops menu contains menu entries that operate on an entire frame or on a
  229. user selected area of pixels.  All of these menu entries are affected by the
  230. area box (which limits the pixels involved in an operation) and range.  If
  231. the area box is enabled then only the pixels in the box will be affected.
  232. If range is enabled then the operation will apply to all the frames from range
  233. start to range end inclusive.  If range is not enabled then only the current
  234. frame is affected.
  235.  
  236. Clear        - Clear the frame or area.
  237.  
  238. Fill        - Fill the frame or area.
  239.  
  240. Invert        - Invert the frame or area.  A pixel that is white will now
  241.           be black and a pixel that is black will now be white.
  242.  
  243. Rotate        - Turn the frame or area by 90 degrees.  If the area box is
  244.           enabled and the area is not square then the area box is
  245.           modified to be square.  The upper left corner will not
  246.           change when the area box is adjusted.
  247.  
  248. H-Flip        - Flip the frame or area pixels horizontally.  Pixels on the
  249.           left are now on the right and pixels on the left are now on
  250.           the right.
  251.  
  252. V-Flip        - Flip the frame or area pixels vertically.  Pixels on the
  253.           top are now on the bottom and pixels on the bottom are now
  254.           on the top.
  255.  
  256. Shift        - Displays the shift dialog which will allow shifting the
  257.           frame or area up, down, left, or right.  The dialog has
  258.           three shift count buttons [ 1 ], [ 5 ] and [ 10 ].  These
  259.           control the number of shifts shifted when one of the shift
  260.           arrows is selected.
  261.  
  262.  
  263. Prim Menu
  264. ---------
  265. The Prim menu contains menu options for free hand drawing, creating boxes,
  266. and copying moving areas of a frame.  All of these menu entries are affected
  267. by range.  Which will cause changes to all the frames from range start to
  268. range end inclusive.
  269.  
  270. Draw        - Draw on the screen using the mouse.  Press and hold the
  271.           left mouse and free hand draw.  The pixel that is under
  272.           the mouse pointer at the time the left mouse button is
  273.           pushed determines the color (black/white) that will be 
  274.           used to draw with.  The color is the opposite to the pixel
  275.           under the mouse pointer.  If you enable the area box then
  276.           draw will be disbled in favour of creating a new are box.
  277.  
  278. Box        - Draw a box in the screen.  Locate the mouse in the upper
  279.           left corner (or lower right), press and hold the left mouse
  280.           button and move the mouse until the box is the desired
  281.           shape and size.  Don't confuse this box with the area box.
  282.           If you enable the area box then box will be disabled in
  283.           favour of creating a new area box.
  284.  
  285. Copy        - Copy an area replacing the destination area.
  286. Xray Copy    - Copy an area merging the source and destination areas.
  287. Move        - Move an area replacing the destination area.
  288. Xray Move    - Move an area merging the source and destination areas.
  289.  
  290.           For these menu entries you can use the area box as the
  291.           source area or you can make a new area box.  When the
  292.           source area is ready point some where inside the box and
  293.           press and hold the left mouse button.  The area you have
  294.           selected will now follow the  mouse pointer around the
  295.           frame.  Position the area where you want it and release
  296.           the left mouse button.  Be careful not to let the mouse
  297.           wander too far out of the total frame area as the program
  298.           will release the left mouse button (effectively) and
  299.           the area will probably not be left where you wanted it.
  300.  
  301.  
  302. Range Menu
  303. ----------
  304. The Range menu enables menu entries to affect more that one frame.  You
  305. cannot UNDO any operation that is executed with range enabled.
  306.  
  307. Enable        - Displays the Frame Range Dialog and enables menu entries
  308.           to affect a range of frames.  There is NO UNDO from an
  309.           operation affected by RANGE.
  310.  
  311. Mark Start    - Set the range start value to the current frame.  This does
  312.           not enable range.  Only Enable above does.
  313.  
  314. Mark End    - Set the range end value to the current frame.  This does
  315.           not enable range.  Only Enable above does.
  316.  
  317.  
  318. Misc Menu
  319. ---------
  320. Catch all menu for things that don't belong in other menus.  At the moment
  321. there are only Undo and Color.
  322.  
  323. Undo        - Undo the last single frame operation.  Undo is not available
  324.           for operations the involve a range of frames.   The last
  325.           undo will be disabled after a frame range operation.
  326.  
  327. Color        - Displays a dialog that allows the user to set the screen
  328.           colors.
  329.  
  330.  
  331. ========
  332. WARNINGS
  333. ========
  334.  
  335. - UNDO DOES NOT WORK WITH ANY OPERATION EXECUTED WITH RANGE ENABLED.
  336.  
  337.  
  338. ===================
  339. FUTURE ENHANCEMENTS
  340. ===================
  341. Here are a few changes that I would like to see made to RSFLIP when there
  342. is more time and energy available:
  343.  
  344. - reduce the amount of memory space required to store a frame.
  345. - have UNDO work with ranges of frames for any command.
  346.  
  347.  
  348. =========
  349. BUG FIXES
  350. =========
  351. If you find a bug or would like to suggest an improvment to RSFLIP please
  352. e-mail me at:
  353.  
  354.         bobs@moliman.molienergy.bc.ca
  355.     or
  356.         ...!uunet!van-bc!resrch!moliman!bobs
  357.